module.exports = {
  // 这个文件就行设置.eslintrc.js是否有效
  // false表示失效  true表示生效
  //具体配置参考 https://cli.vuejs.org/zh/config/#vue-config-js
  lintOnSave: false, // default false

  chainWebpack: config => {
    // 98-6为开发模式与发布模式指定不同的打包入口
    // 98-6-1   process.env.NODE_ENV获得编译模式
    config.when(process.env.NODE_ENV === 'production', config => {
      //通过config.entry('app')获得默认打包入口，清空默认打包入口，然后清楚掉默认打包入口，在添加自己的打包文件
      config
        .entry('app')
        .clear()
        .add('./src/main-prod.js')
      // 98-7-1通过 externals 加载外部 CDN 资源
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        lodash: '_',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'VueQuillEditor'
      })
      // html 插件名称 , tap 链式操作来修改插件里面的相关参数，args就是里面的插件里面的参数项
      //'html' 是固定写法 传的是字符串
      config.plugin('html').tap(args => {
        //通过点的形式新增一个参数来实现
        args[0].isProd = true
        //修改完成之后，返回args
        return args
      })
    })
    // 98-9-1 首页内容定制
    config.when(process.env.NODE_ENV === 'development', config => {
      config
        .entry('app')
        .clear()
        .add('./src/main-dev.js')

      //通过点的形式新增一个参数来实现
      config.plugin('html').tap(args => {
        console.log('html')
        args[0].isProd = false
        return args
      })
    })
  }
}
